Make gtk_init_with_args behave as documented
authorMatthias Clasen <mclasen@redhat.com>
Tue, 27 Sep 2016 19:12:47 +0000 (15:12 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 27 Sep 2016 19:12:47 +0000 (15:12 -0400)
This docs say it should return FALSE if the display can't be opened,
but it was failing.

https://bugzilla.gnome.org/show_bug.cgi?id=771959

gtk/gtkmain.c

index ad6ed506a436beb47713018702d4ef413e7f221e..5c0dcb18848dbad1645a7595cb3cbfee42756f29 100644 (file)
@@ -963,14 +963,14 @@ gtk_init_with_args (gint                 *argc,
   gboolean retval;
 
   if (gtk_initialized)
-    return GDK_PRIVATE_CALL (gdk_display_open_default) () != NULL;
+    goto done;
 
   gettext_initialization ();
 
   if (!check_setugid ())
     return FALSE;
 
-  gtk_group = gtk_get_option_group (TRUE);
+  gtk_group = gtk_get_option_group (FALSE);
 
   context = g_option_context_new (parameter_string);
   g_option_context_add_group (context, gtk_group);
@@ -982,7 +982,11 @@ gtk_init_with_args (gint                 *argc,
 
   g_option_context_free (context);
 
-  return retval;
+  if (!retval)
+    return FALSE;
+
+done:
+  return GDK_PRIVATE_CALL (gdk_display_open_default) () != NULL;
 }